#ifndef LIDAR_PERPROCESS_RADIUS_FILTER_H
#define LIDAR_PERPROCESS_RADIUS_FILTER_H
#include <pcl/filters/radius_outlier_removal.h>
#include <math.h>
#include <iomanip>
#include "../lidar_preprocess.h"
#include "type.h"
namespace perception
{
    namespace lidar_preprocess
    {
        template <typename T1, typename T2, typename T3>
        class RadiusFilter : public LidarPreprocess<T1, T2, T3>
        // class RadiusFilter
        {
        public:
            // using Ptr = pcl::PointCloud<T1>::Ptr;
            // using ConstPtr = pcl::PointCloud<T1>::ConstPtr;
            void Process(typename pcl::PointCloud<T1>::Ptr &data_in, typename pcl::PointCloud<T2>::Ptr &data_out, T3 &config);
            ~RadiusFilter() {}

        private:
        };
        #define INSTANTIATE_RadiusFilter(T1, T2, T3) template class RadiusFilter<T1, T2, T3>;    

    }
}
#endif